package course.d1230;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
     TCP通信：
     服务器端：
     ServerSocket类：
     构造方法：
     public ServerSocket()
             throws IOException 创建非绑定服务器套接字。
     public ServerSocket(int port)
             throws IOException 创建绑定到特定端口的服务器套接字。端口 0 在所有空闲端口上创建套接字。
     成员方法：
     1.public Socket accept()throws IOException 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
     2.public void close()throws IOException 关闭资源

     实现步骤：
     1.创建一个服务器端对象（ServerSocket）   server
     2.使用server对象中的accept方法接收一个Socket客户端对象 socket
     3.使用客户端对象socket中的getInputStream方法，获取一个网络字节输入流对象is
     4，使用is读取客户端发送给服务器的数据
     5.使用客户端对象socket中的getOutputStream，获取一个网络字节输入流对象os
     6.使用网络字节输出流对象写一个数据给客户端
     7.关闭socket，server资源
 */
public class p1 {
    public static void main(String[] args) {
        //创建服务端对象
        while (true){
            try (ServerSocket server = new ServerSocket(8888)) {
                //接收一个socket对象
                Socket socket = server.accept();

                for (int i = 0; i <2 ; i++) {
                    InputStream is = socket.getInputStream();
                    byte[] bs = new byte[1024];
                    int read = is.read(bs);
                    System.out.println(new String(bs,0,read));
                }
                //获取一个网络字节输出流
                OutputStream os = socket.getOutputStream();
                os.write("收到了".getBytes());

            } catch (IOException e) {
            }
        }

    }
}
